package fantasmaTest;

import laberinto.Casilla;
import personajes.Pacman;
import utilidades.Constantes;
import utilidades.ContadorDeCiclos;
import utilidades.Vector;

public class PacmanMockup extends Pacman{

	public PacmanMockup(Casilla casillaInicial) {
		super(casillaInicial);
	}

	private Vector direccionActual;
	private ContadorDeCiclos contadorParaMoverse;
	private float velocidad;
	
	public PacmanMockup(Casilla casillaInicial,float velocidad) {
		super(casillaInicial);
		this.velocidad=velocidad;
	}
	
	@Override
	public void vivir(int tickActual) {
		mover(tickActual);
	}	
	
	private void mover(int tickActual){
		comerObjetosComibles();
		if(seMueve()){
			if(!direccionActual.esIgualA(Constantes.NULO))
				moverse(direccionActual);
		}
	}
	
	private boolean seMueve(){
		float avance = velocidad;
		
		if(contadorParaMoverse.ocurreEnEsteCiclo(avance))
			return true;
		return false;
	}
	
	private void comerObjetosComibles() {
		casillaActual.interaccionDeComiblesCon(this);
	}
	
	public void setVelocidad(float velocidad){
		this.velocidad = velocidad;
	}
	
	public float obtenerVelocidad(){
		return velocidad;
	}
	
	public void setDireccion(Vector direccion){
		direccionActual = direccion;
	}

	public void vivir() {
		vivir(0);
	}
}
